//
//       _/_/_/                      _/            _/_/_/_/_/
//    _/          _/_/      _/_/    _/  _/              _/      _/_/      _/_/
//   _/  _/_/  _/_/_/_/  _/_/_/_/  _/_/              _/      _/    _/  _/    _/
//  _/    _/  _/        _/        _/  _/          _/        _/    _/  _/    _/
//   _/_/_/    _/_/_/    _/_/_/  _/    _/      _/_/_/_/_/    _/_/      _/_/
//
//
//  Copyright (c) 2015-2016, Geek Zoo Studio
//  http://www.geek-zoo.com
//
//
//  Permission is hereby granted, free of charge, to any person obtaining a
//  copy of this software and associated documentation files (the "Software"),
//  to deal in the Software without restriction, including without limitation
//  the rights to use, copy, modify, merge, publish, distribute, sublicense,
//  and/or sell copies of the Software, and to permit persons to whom the
//  Software is furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
//  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
//  IN THE SOFTWARE.
//

package com.example.moshudriver.activity;

import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.text.Editable;
import android.text.Selection;
import android.text.Spannable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.BeeFramework.activity.BaseActivity;
import com.BeeFramework.model.BusinessResponse;
import com.BeeFramework.view.ToastView;
import com.sgr.dykdriver.R;
import com.example.moshudriver.model.ServiceModel;
import com.example.moshudriver.protocol.ApiInterface;
import com.example.moshudriver.protocol.MY_SERVICE;
import com.example.moshudriver.tools.MessageConstant;
import com.external.androidquery.callback.AjaxStatus;
import com.external.eventbus.EventBus;

//编辑服务
public class C15_EditPriceActivity extends BaseActivity implements
		BusinessResponse, View.OnClickListener {
	public final static String SERVICE = "my_service";
	private TextView nTitle;
	private ImageView mBack;
	private TextView mType;
	private EditText mPrice;
	private Button mSave;
	private ServiceModel mServiceModel;
	private MY_SERVICE mMyService;

	// 服务价格
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.c15_edit_price);
		mMyService = (MY_SERVICE) getIntent().getSerializableExtra(SERVICE);
		nTitle = (TextView) findViewById(R.id.top_view_title);
		nTitle.setText(getString(R.string.modify_service));
		mBack = (ImageView) findViewById(R.id.top_view_back);
		mType = (TextView) findViewById(R.id.service_type);
		mPrice = (EditText) findViewById(R.id.price);
		mSave = (Button) findViewById(R.id.save);
		if (mMyService != null) {
			mType.setText(mMyService.service_type.title);
			mPrice.setText(mMyService.price);
			mPrice.setSelection(mMyService.price.length());
		}
		mServiceModel = new ServiceModel(this);
		mServiceModel.addResponseListener(this);
		mSave.setOnClickListener(this);
		mBack.setOnClickListener(this);
		mPrice.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub
				if (s.toString().length() > 0) {
					if (s.toString().substring(0, 1).equals(".")) {
						s = s.toString().substring(1, s.length());
						mPrice.setText(s);
					}
				}
				if (s.toString().length() > 1) {
					if (s.toString().substring(0, 1).equals("0")) {
						if (!s.toString().substring(1, 2).equals(".")) {
							s = s.toString().substring(1, s.length());
							mPrice.setText(s);
							CharSequence charSequencePirce = mPrice.getText();
							if (charSequencePirce instanceof Spannable) {
								Spannable spanText = (Spannable) charSequencePirce;
								Selection.setSelection(spanText,
										charSequencePirce.length());
							}
						}
					}
				}
				boolean flag = false;
				for (int i = 0; i < s.toString().length() - 1; i++) {
					String getstr = s.toString().substring(i, i + 1);
					if (getstr.equals(".")) {
						flag = true;
						break;
					}
				}
				if (flag) {
					int i = s.toString().indexOf(".");
					if (s.toString().length() - 3 > i) {
						String getstr = s.toString().substring(0, i + 3);
						mPrice.setText(getstr);
						CharSequence charSequencePirce = mPrice.getText();
						if (charSequencePirce instanceof Spannable) {
							Spannable spanText = (Spannable) charSequencePirce;
							Selection.setSelection(spanText,
									charSequencePirce.length());
						}
					}
				}
			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub
			}

			@Override
			public void afterTextChanged(Editable s) {
				// TODO Auto-generated method stub
			}
		});
	}

	@Override
	public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status)
			throws JSONException {
		if (url.endsWith(ApiInterface.MYSERVICE_MODIFY)) {
			ToastView toast = new ToastView(this,
					getString(R.string.price_edit_success));
			toast.setGravity(Gravity.CENTER, 0, 0);
			toast.show();
			CloseKeyBoard();
			Message msg = new Message();
			msg.what = MessageConstant.Change_Seivice;
			EventBus.getDefault().post(msg);
			Intent intent = new Intent();
			intent.putExtra("ok", "ok");
			setResult(RESULT_OK, intent);
			finish();
		}
	}

	@Override
	public void onClick(View v) {
		String price = mPrice.getText().toString().trim();
		switch (v.getId()) {
		case R.id.top_view_back:
			finish();
			break;
		case R.id.save:
			if (price.length() == 0 & "".equals(price)) {
				ToastView toast = new ToastView(this,
						getString(R.string.privce_not_null));
				toast.setGravity(Gravity.CENTER, 0, 0);
				toast.show();
				mPrice.requestFocus();
			} else {
				mServiceModel.modify(mMyService.id, price);
			}
			break;
		}
	}

	// 关闭键盘
	private void CloseKeyBoard() {
		InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
		imm.hideSoftInputFromWindow(mPrice.getWindowToken(), 0);
	}
}
